﻿namespace Stopwatch.Core
{
    using System;
    using System.Collections.Generic;
    using Newtonsoft.Json;
    using System.Threading;

    public interface IWatch : IDisposable
    {
        Time Runtime { get; }

        Time SubRuntime { get; }

        ICollection<Time> Splits { get; }

        Status Status { get; }

        void Start();

        void Pause();

        void Reset();

        Time Split();

        event EventHandler OnPaused;

        event EventHandler OnStoped;

        event EventHandler OnTick;
    }
}
